(1) Technical Field
The present invention relates to techniques for registering components in computer-generated scenes. More specifically, the present invention relates to a technique for registering synthetic images of components by generating parallel predictions and selecting the most accurate prediction for display to a user.
(2) Discussion
In graphics systems that are required to produce images derived from changing data, in which the images must be produced as quickly as possible, current technologies suffer from registration accuracy-related drawbacks. One such example is that of head-tracked display systems that create images specific to a particular eye position, orientation, and field of view. Usually these parameters are supplied by sensors that measure an operator's head or gaze position and orientation. As the operator's head moves, the sensors feed updated parameters to the system so that new images can be created consistent with the new parameters. Since the image is usually synthetic, or contains synthetic elements, it takes time to construct. By the time the image reaches its ultimate display surface, there is some difference between the current sensor outputs and the parameters used to construct the image. Visually, the result is incorrect registration of synthetic components, which can result in confusion, nausea, and other undesirable physical and psychological effects.
Current systems for generating synthetic or augmented computer graphic scenes use a sequence of steps to produce an output image at the display device, as depicted in FIG. 1, which shows a typical sequence. In a sensing step 100, one or more sensors feed data, for example a viewer's eyepoint and gaze direction into a prediction module. Typical sensors used include magnetic, video, and inertial sensors. Next, in a predicting step 102, a predicting module attempts to predict a future value of the sensor data, such as what the eyepoint and gaze directions will be at the time the image is finally displayed. Typical predicting modules include, for example, Kalman filters as well as other behavioral and physical models. After the predicting step 102 has finished, a rendering step 104 is performed by a render module that creates an image in memory based on inputs from the predicting step 102. At the conclusion of rendering, in a warping step 106, new sensor inputs may be used to warp the image to adjust for small changes to the viewing parameters. The warping step 106 is typically performed by interpolating the image to match current information from the sensors. After the image has been sufficiently warped, a displaying step 108 is performed to produce an image on an output device. Most existing systems do not perform the predicting step 102 or the warping step 106, and simply attempt to keep up with the sensors as well as possible.
The technique depicted in FIG. 1 can work well if the prediction and warping modules produce good results, i.e., the correct future parameter values are predicted and the warping does not introduce noticeable visual artifacts and can be accomplished quickly. Unfortunately, these conditions are often not met, resulting in serious visual artifacts.
Accordingly, there exists a need in the art for a fast and reliable system for properly registering synthetic images of components at their proper locations in computer-generated scenes. Such a system would provide final images that closely match the current state of the sensors, thereby eliminating the undesirable physical and psychological side effects described above.